/*
 *https://leetcode.cn/problems/climbing-stairs/
 *70. 爬楼梯
 *easy, 吴朝泽 2024.9.4
 *动态规划
通过递推不难发现本题存在以下规律，算法的核心是使用两个变量 a 和 b 来记录到达前两级楼梯的不同方法数。
通过循环迭代，变量 a 和 b 更新为前两级楼梯的方法数总和，即 a 变为 b，b 变为 a + b。
最终，b 存储了到达第 n 级楼梯的方法数。
*/

class Solution {
public:
    int climbStairs(int n) {
        int a = 0, b = 1;
        for (int i = 0; i < n; ++i) 
        {
            int c = a + b;
            a = b;
            b = c;
        }
        return b;
    }
};